package days2.invoke;

import java.util.Scanner;

/**
 * @Author fengzihao
 * @Date 2024-04-16 21:46
 */
public class Practice {
    public static void main(String[] args) {
        // 实参的自动类型转换: 方法在调用时，如果填入的实参的数据类型，
        // 可以自动类型转换成形参的数据类型，那么即便数据类型不一致，
        // 语法上仍然允许该数据类型的变量作为实参。
        // 反之强制类型转换不行。方法的返回值和它的返回值类型也存在这种特点！
        // (如果一个方法需要传入一个long类型数据，那我传入一个int值可以吗？如果传入double值可以吗?)

        // 传两个int是可以的。 如果说可以自动类型转换到int，也可以。
        // 但是如果需要强制类型转换。这个不行。
        test1(10, 20);

        byte b1 = 50;

        test1(b1, 20);

        long l1 = 10L;
        // test1(l1, 30);


        // 形参列表中起关键作用的是数据类型，它决定了调用该方法时需要传入什么数据。而形参地名字实际上就是一个代号，
        // 仅会影响方法内部如何使用外部传入地数据，形参名叫什么其实无所谓。

        int main = 10;

        System.out.println("inputTwoValueAndReturnMax() = " + inputTwoValueAndReturnMax());


    }

    // 例子，返回两数最大值写一下，判断偶数太简单了，不写了
    public static int inputTwoValueAndReturnMax() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数：");
        int num1 = scanner.nextInt();
        System.out.println("请输入第二个数：");
        int num2 = scanner.nextInt();
        return num1 > num2 ? num1 : num2;
    }

    public static void test1(int num1, int num2) {
        System.out.println(num1 + num2);
    }

}
